/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package examples.mail;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.io.Util;
import org.apache.commons.net.smtp.SMTPClient;
import org.apache.commons.net.smtp.SMTPReply;
import org.apache.commons.net.smtp.SimpleSMTPHeader;

/***
 * This is an example program using the SMTP package to send a message to the
 * specified recipients. It prompts you for header information and a filename
 * containing the message.
 * <p>
 ***/

public final class SMTPMail2 {

	public final static void main(String[] args) {
		String sender, recipient, subject, filename, server, cc;
		List<String> ccList = new ArrayList<String>();
		BufferedReader stdin;
		FileReader fileReader = null;
		Writer writer;
		SimpleSMTPHeader header;
		SMTPClient client;

		try {

			 server = "mx1.qq.com";

			 server = "webmail.easou.com";

			sender = "nice3mu@163.com";

			 recipient = "nice2mu@qq.com";

			 recipient = "milo_li@staff.easou.com";

			subject = "=?gb2312?B?vOzL98jV1r7NrLK90OjH8w==?=";

			header = new SimpleSMTPHeader(sender, recipient, subject);

			client = new SMTPClient();
			client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));

			client.connect(server);

			if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) {
				client.disconnect();
				System.err.println("SMTP server refused connection.");
			}

			client.login();

			client.setSender(sender);
			client.addRecipient(recipient);

			for (String recpt : ccList) {
				client.addRecipient(recpt);
			}

			writer = client.sendMessageData();

			if (writer != null) {
				writer.write(header.toString());

				fileReader = new FileReader("a.txt");

				Util.copyReader(fileReader, writer);

				writer.close();
				client.completePendingCommand();
			}

			if (fileReader != null) {
				fileReader.close();
			}

			client.logout();

			client.disconnect();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}
}
